package com.link.serve.tcp.handler;// Token 验证处理器
import com.link.serve.tcp.message.Message;
import com.link.serve.utils.TokenUtil;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class TokenValidationHandler extends ChannelInboundHandlerAdapter {
//    @Autowired
//    private TokenUtil tokenUtil;
    @Override
    public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
        if (msg instanceof Message) {
            Message message = (Message) msg;
            String token = message.getHeader().getToken(); // 获取消息中的 token
            if (!validateToken(token)) { // 验证 token 是否合法
                System.out.println("Invalid token: " + token); // 打印非法 token 信息
                ctx.close(); // 关闭连接
                return;
            }
        }
        super.channelRead(ctx, msg); // 将消息传递给下一个处理器
    }

    private boolean validateToken(String token) {
        // 简单的 token 验证逻辑，建议替换为更安全的实现（如 JWT）这里去请求安全中台就可以了
//        return tokenUtil.validateToken(token);
        return true;
    }
}
